<?php
class AttachAction extends AdminAction{
    public function _initialize() {
    	import("App.Action.ORG.UploadFile");
    	$this->checkLogin();
		header("Content-Type:text/html; charset=utf-8");
    }
    
     /*上传图片列表*/
    public function index(){
    	$this->assign($this->base_title,'图片列表');
    	$this->getPage('Attach','','picList','attach_id desc',9);
        $this->display();
    }
    
    public function editAttach(){
    	$this->assign($this->base_title,'上传附件');
        $this->display();
    }

     /*显示添加页面*/
    public function addAttach(){
    	
        $this->display();
    } 
    
     /*删除图片*/
    function delUpload() {
        $attachDao = D ( "Attach" );
        $attach = $attachDao->select($_GET["id"]);
        if (count ( $attach ) < 1) {
            $this->error ( "没有与该附件相对应的记录" );
        }
        $rs = $attachDao->delete($_GET['id']);
        import ( "ORG.Util.Image" );
        $url ='./Upload/'.$attach[0]["attach_fname"];
        $result = unlink ( $url );
        if (! $result)
            $this->error ( "无法删除附件所对应的文件" );
        $this->success('图片删除成功！');
    }
    
     /*上传处理*/
    function upload(){
        $upload = new UploadFile(); // 实例化上传类   
        $upload->maxSize  = 3145728 ; // 设置附件上传大小   
        $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg','doc','xls','rar','zip'); // 设置附件上传类型   
        $upload->savePath =  './Upload/'; // 设置附件上传目录   
        $upload->saveRule='time';
        if(!$upload->upload()) { // 上传错误 提示错误信息   
            $this->error($upload->getErrorMsg());   
        }else{ // 上传成功 获取上传文件信息   
            $info =  $upload->getUploadFileInfo();   
        }   
        // 保存表单数据 包括附件数据   
        $att = M("Attach"); // 实例化对象   
        $att->create(); // 创建数据对象   
        $index=strrpos($info[0]["savename"],'.')+1;
        $att->attach_fname= $info[0]["savename"]; // 保存上传的照片 根据需要自行组装   
        $att->attach_type=substr($info[0]["savename"],$index,3);
        $att->add(); // 写入用户数据到数据库   
        $this->success("图片上传成功！");   
	}   
	
	 /*另一个上传处理*/
    function uploads(){
        $upload = new UploadFile(); // 实例化上传类   
        $upload->maxSize  = 3145728 ; // 设置附件上传大小   
        $upload->allowExts  = array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型   
        $upload->savePath =  './Upload/'; // 设置附件上传目录
        $showPath =  '../../'; //     
        $realPath='Upload/';
        $upload->saveRule='time';
        if(!$upload->upload()) { // 上传错误 提示错误信息   
            $this->error($upload->getErrorMsg());   
        }else{ // 上传成功 获取上传文件信息   
            $info =  $upload->getUploadFileInfo();   
        }   
        // 保存表单数据 包括附件数据   
        $att = M("Attach"); // 实例化对象   
        $att->create(); // 创建数据对象   
        $index=strrpos($info[0]["savename"],'.')+1;
        $att->attach_fname= $info[0]["savename"]; // 保存上传的照片 根据需要自行组装   
        $att->attach_type=substr($info[0]["savename"],$index,3);
        $att->add(); // 写入用户数据到数据库   
        echo("图片上传成功！");
        echo("图片地址：".$realPath.$info[0]["savename"]);
        echo("<script type='text/javascript'>window.parent.document.getElementById('imgUrl').value='".$realPath.$info[0]["savename"]."';window.parent.document.getElementById('img').src='".$showPath.$realPath.$info[0]["savename"]."';</script>");
	} 	 
	
	function attach(){
	   $this->assign($this->base_title,'文章附件列表');
	 
	   $arr=array();                       //文件数组
	   $i=0;                               //$i递加变量初值
	   $dir='Upload/attached';             //遍历的路径
	   
       //PHP遍历文件夹下所有文件
       $handle=opendir($dir); 
       // echo is_dir($dir);

       while (false!==($file = readdir($handle)))
       {

           if($file != "." && $file != "..")
           {
              $index=strrpos($file,'.')+1;
              $arr[$i]['file_id']=$i;
              $arr[$i]['file_name']=$file; //输出文件名
              $arr[$i]['file_size']= (int)(filesize($dir.'/'.$file)/1024);
              $arr[$i]['file_type']=substr($file,$index,3);
              $arr[$i]['file_url']=$dir.'/'.$file;
           }
          $i++;
        }
        
       //dump($arr);
       closedir($handle); 
      
       
       /*分页处理*/
       $pageSize=9;                                  //列表的大小
       $pageList="";                                 //要输出的列表
       $page=$_GET['p'];
	   if(!isset($page)){
	   	  $page=1;
	   }
	   $pageTotal=(int)(count($arr)/$pageSize)+1;      //计算总页数
       $pageArr=array();                             //要输出的内容数组
       
       for($k=(($page-1)*$pageSize);$k<($page*$pageSize);$k++){    //转移要输出的内容到临时数组
       	 if($k<count($arr)){
       	    $pageArr[$k]=$arr[$k];
       	    //echo $k;
       	 }
       }
       
       for($j=1;$j<=$pageTotal;$j++){                //生成页码
       	  if($page==$j){
       	    $pageList=$pageList." <a href='".U('Admin-Attach/attach',array('p'=>$j))."' class='number current'>".$j."</a>";
       	  }else{
       	  	$pageList=$pageList." <a href='".U('Admin-Attach/attach',array('p'=>$j))."' class='number'>".$j."</a>";
       	  }
       }
	   $this->assign('page',$pageList);              //输出页码
       $this->assign('picList',$pageArr);            //输出指定的页面的附件
       $this->display();
	}
	
	function delAttach(){
		$url=$_GET['url'];
		$dir='Upload/attached';                      //遍历的路径
		$result = unlink ($dir.'/'.$url);
        if (! $result)
            $this->error ( "无法删除附件所对应的文件" );
        $this->success('文件删除成功！');
	}
}
?>